// 给定一个5位数的数组nums代表扑克牌中的5张牌，其中2-10为数字本身，
// A用1表示，J用11表示，Q用12表示，K用13表示，大小王用0表示，且大小王可以替换任意数字
// 要求：判断给定的5张牌是否是一个顺子，即是否为连续的5个数

// 思路：如果不考虑大小王，一个顺子，最大值 - 最小值 = 4，如果考虑有顺子，则最大值 - 最小值 <= 4
// 时间复杂度：O(n)，n是数组的长度
// 空间复杂度：O(n)
function isStraight(arr) {
    let min = Infinity
    let max  = -Infinity
    let set = new Set
    for (let i = 0; i < arr.length; i++) {
        if (set.has(arr[i])) {
            return false
        } 
        // 大小王跳过
        if (arr[i] === 0) {
            continue
        }
        set.add(arr[i])
        min = Math.min(min, arr[i])
        max = Math.max(max, arr[i])
    }
    return max - min <= 4
}

let arr = [0,0,1,2,5]
console.log(isStraight(arr))